clear
set more off

global ecrmen  "\\intra\partages\au_amic2\SRCV_AVRIL2021\BASES_FEV2022_V5\2020\MENAGES"
global ecrind  "\\intra\partages\au_amic2\SRCV_AVRIL2021\BASES_FEV2022_V5\2020\INDIVIDUS"
global ecrfin  "\\intra\partages\au_amic2\SRCV_AVRIL2021\BASES_FEV2022_V5\2020\TOTAL"
global ecrstat "\\intra\partages\au_amic2\SRCV_AVRIL2021\STAT_FEV2022_V5\2008_2020"
global ecrprov "\\intra\partages\au_amic2\SRCV_AVRIL2021\prov_FEV2022_V5"


/*******************************************************************************************/
/* II - calcul des différents agrégats PROPOSITION 1 ET PROPOSITION 2 2008-2019 :  HY145N  */
/*******************************************************************************************/
* calcul de total after taxes
clear 
use "$ecrfin\ind_men_2008_2020_fin.dta", clear

* PROPOSITION 1 : on répartit les variables issues de "	MENAGES" en les divisant par le nombre d'individus composant le ménage 
gen labour_income 	= .
gen capital_income 	= .
gen transfer_income = .
gen other_income    = .
gen total_pre_tax 	= .
gen taxes		 	= .
gen total_after_tax = .

replace labour_income 	= PY010N + PY050N if annee_SRCV != 2020
replace capital_income 	= P_HY090N + P_HY040N - P_HY100N if annee_SRCV != 2020
replace transfer_income = PY100N + PY090N + PY110N + PY130N + PY120N + PY140N + P_HY050N + P_HY070N + P_HY060N + P_HY080N - P_HY130N + P_HY110N if annee_SRCV != 2020
replace total_pre_tax 	= labour_income + capital_income + transfer_income if annee_SRCV != 2020
replace taxes		 	= P_HY145N + P_HY120N if annee_SRCV != 2020
replace total_after_tax = total_pre_tax - taxes if annee_SRCV != 2020
save "$ecrfin\ind_men_2008_2020_agregats1.dta", replace


* PROPOSITION 2 : 
* - on répartit les variables issues de "MENAGES" en les affectant uniquement aux individus avec un labour_income 
* - si aucun individu n'a de labour_income on utilise la méthode initiale
clear 
use "$ecrfin\ind_men_2008_2020_agregats1.dta", clear
foreach var of varlist HY040N HY050N HY060N HY070N HY080N HY090N HY100N HY110N HY120N HY130N HY145N {
replace Pvar_`var'= P_`var' if (share_labour == . )
}

gen labour_income_var 	= .
gen capital_income_var 	= .
gen transfer_income_var = .
gen other_income_var    = .
gen total_pre_tax_var 	= .
gen taxes_var		 	= .
gen total_after_tax_var = .

replace labour_income_var 	= PY010N + PY050N if annee_SRCV != 2020
replace capital_income_var 	= Pvar_HY090N + Pvar_HY040N - Pvar_HY100N if annee_SRCV != 2020
replace transfer_income_var = PY100N + PY090N + PY110N + PY130N + PY120N + PY140N + Pvar_HY050N + Pvar_HY070N + Pvar_HY060N + Pvar_HY080N - Pvar_HY130N + Pvar_HY110N if annee_SRCV != 2020
replace total_pre_tax_var 	= labour_income_var + capital_income_var + transfer_income_var if annee_SRCV != 2020
replace taxes_var		 	= Pvar_HY145N + Pvar_HY120N if annee_SRCV != 2020
replace total_after_tax_var = total_pre_tax_var - taxes_var if annee_SRCV != 2020
save "$ecrfin\ind_men_2008_2020_agregats1.dta", replace


/********************************************************************************/
/* III - calcul des différents agrégats PROPOSITION 1 ET PROPOSITION 2 2020 :   */
/*       IRPP & TH au lieu de HY145N                                            */
/*       création de other_income=PY021G + PY080N                               */
/*       rajout de other_income    au total pre_tax                             */
/********************************************************************************/
* calcul de total after taxes
clear 
use "$ecrfin\ind_men_2008_2020_agregats1.dta", clear

* PROPOSITION 1 : on répartit les variables issues de "	MENAGES" en les divisant par le nombre d'individus composant le ménage 
replace labour_income 	= PY010N + PY050N if annee_SRCV == 2020
replace capital_income 	= P_HY090N + P_HY040N - P_HY100N if annee_SRCV == 2020
replace transfer_income = PY100N + PY090N + PY110N + PY130N + PY120N + PY140N + P_HY050N + P_HY070N + P_HY060N + P_HY080N - P_HY130N + P_HY110N if annee_SRCV == 2020
replace other_income 	= PY021G + PY080N 
replace total_pre_tax 	= other_income + labour_income + capital_income + transfer_income if annee_SRCV == 2020
replace taxes		 	= P_IRPP + P_TH + P_HY120N if annee_SRCV == 2020
replace total_after_tax = total_pre_tax - taxes if annee_SRCV == 2020
save "$ecrfin\ind_men_2008_2020_agregats1.dta", replace

* PROPOSITION 2 : 
* - on répartit les variables issues de "MENAGES" en les affectant uniquement aux individus avec un labour_income 
* - si aucun individu n'a de labour_income on utilise la méthode initiale
clear 
use "$ecrfin\ind_men_2008_2020_agregats1.dta", clear
foreach var of varlist HY040N HY050N HY060N HY070N HY080N HY090N HY100N HY110N HY120N HY130N IRPP TH {
replace Pvar_`var'= P_`var' if (share_labour == . )
}

replace labour_income_var 	= PY010N + PY050N if annee_SRCV == 2020
replace capital_income_var 	= Pvar_HY090N + Pvar_HY040N - Pvar_HY100N if annee_SRCV == 2020
replace transfer_income_var = PY100N + PY090N + PY110N + PY130N + PY120N + PY140N + Pvar_HY050N + Pvar_HY070N + Pvar_HY060N + Pvar_HY080N - Pvar_HY130N + Pvar_HY110N if annee_SRCV == 2020
replace other_income_var 	= PY021G + PY080N 
replace total_pre_tax_var 	= other_income_var + labour_income_var + capital_income_var + transfer_income_var if annee_SRCV == 2020
replace taxes_var		 	= Pvar_IRPP + Pvar_TH + P_HY120N if annee_SRCV == 2020
replace total_after_tax_var = total_pre_tax_var - taxes_var if annee_SRCV == 2020
save "$ecrfin\ind_men_2008_2020_agregats.dta", replace


/******************************************************************************************/
/* V - comparaison de :                                                                   */
/*      total_after_tax et total after_tax_var calculées par individu                     */
/*      et recomposées au niveau ménage avec (HY020N-HY100N) issus du fichier ménages     */                                       
/******************************************************************************************/
/***************************************************************/
/* A - 2008-2019                                               */
/*     on a à peu près la même chose pour 97% des observations */ 
/***************************************************************/
* 1 - recomposition du total_after_tax par MENAGE/annee_SRCV : somme par idmenc/annee_SRCV
clear 
use "$ecrfin\ind_men_2008_2020_agregats.dta", clear
drop if annee_SRCV == 2020
sort idmenc annee_SRCV ind
order idmenc annee_SRCV ind
collapse (sum) total_after_tax_p1=total_after_tax total_after_tax_p2=total_after_tax_var, by(idmenc annee_SRCV)
save "$ecrprov\total_after_tax_famille1.dta", replace

* 2 - récupération nb_idindc, HY020 et HY100N par idmenc annee_SRCV
clear 
use "$ecrfin\ind_men_2008_2020_agregats.dta", clear
sort men annee_SRCV ind
order men annee_SRCV ind 
keep idmenc annee_SRCV nb_idindc HY020 HY100N
duplicates drop idmenc annee_SRCV, force
save "$ecrprov\nb_idindc.dta", replace

* 3 - appariement table ci-dessus avec nb_idindc
clear			
use "$ecrprov\total_after_tax_famille1.dta", clear
duplicates drop idmenc annee_SRCV, force
clear
use "$ecrprov\nb_idindc.dta", clear
duplicates drop idmenc annee_SRCV, force
clear			
use "$ecrprov\total_after_tax_famille1.dta", clear
merge 1:1 idmenc annee_SRCV using "$ecrprov\nb_idindc.dta"
drop if _merge == 2
drop _merge
save "$ecrprov\comparaison1.dta", replace


* 4 - récupération des revenus des individus avec adultvrairep == 0
* remplacement des points par zéro
clear
use "$ecrfin\adultvrairep_a_zero.dta", clear
foreach var of varlist PY100N PY110N PY010N PY050N PY090N PY120N PY130N PY140N PY021G PY080N PY080G {
replace `var'= 0 if `var' == .
}
save "$ecrprov\adultvrairep_a_zero.dta", replace 


* somme par idmenc/anne de tous les revenus non pris en compte dans total_after_tax
clear
use "$ecrprov\adultvrairep_a_zero.dta", clear
gen revenus_indi_supp = PY100N+PY110N+PY010N+PY050N+PY090N+PY120N+PY130N+PY140N+PY021G+PY080G 
save "$ecrprov\adultvrairep_a_zero.dta", replace 
clear
use "$ecrprov\adultvrairep_a_zero.dta", clear
collapse (sum) revenus_indi_supp_famille=revenus_indi_supp, by(idmenc annee_SRCV)
save "$ecrprov\adultvrairep_a_zero_fin.dta", replace

* appariement table ci-dessus avec comparaison1.dta
clear			
use "$ecrprov\adultvrairep_a_zero_fin.dta", clear
duplicates drop idmenc annee_SRCV, force
clear
use "$ecrprov\comparaison1.dta", clear
duplicates drop idmenc annee_SRCV, force
clear			
use "$ecrprov\comparaison1.dta", clear
merge m:m idmenc annee_SRCV using "$ecrprov\adultvrairep_a_zero_fin.dta"
drop _merge
replace revenus_indi_supp_famille = 0 if revenus_indi_supp_famille == .
save "$ecrprov\comparaison_fin1.dta", replace

* 5 - comparaison série recalculée (total_after_tax_famille+revenus_indi_supp_famille) et (HY020-HY100N)
* création de diff 
clear			
use "$ecrprov\comparaison_fin1.dta", clear
* création de diff_int 
gen diff_p1 = (HY020-HY100N) - (total_after_tax_p1+revenus_indi_supp_famille)
gen diff_p2 = (HY020-HY100N) - (total_after_tax_p2+revenus_indi_supp_famille)
gen diff_p1r=round(diff_p1)
gen diff_p2r=round(diff_p2)

gen groupe_diff_p1 = 0
replace groupe_diff_p1 = 1 if diff_p1r >= -10 & diff_p1r <= 10 /* écarts faibles */  
replace groupe_diff_p1 = 2 if diff_p1r <  -10 | diff_p1r > 10  /* écarts plus élevés */  
replace groupe_diff_p1 = 0 if diff_p1r == 0 
label variable groupe_diff_p1 "Ecarts = (HY020-HY100N) - (total_after_tax_p1+revenus_indi_supp_famille)"
label define l_groupe_diff_p1	0 "Ecarts à zéro" 1 "Ecarts très faibles >=-10 et <=10" 2 "Ecarts plus élevés <-10 et >10" 
label values	groupe_diff_p1	l_groupe_diff_p1

gen groupe_diff_p2 = 0
replace groupe_diff_p2 = 1 if diff_p2r >= -10 & diff_p2r <= 10 /* écarts faibles */  
replace groupe_diff_p2 = 2 if diff_p2r <  -10 | diff_p2r > 10  /* écarts plus élevés */  
replace groupe_diff_p2 = 0 if diff_p2r == 0 
label variable groupe_diff_p2 "Ecarts = (HY020-HY100N) - (total_after_tax_p2+revenus_indi_supp_famille)"
label define	l_groupe_diff_p2	0 "Ecarts à zéro" 1 "Ecarts très faibles >=-10 et <=10" 2 "Ecarts plus élevés <-10 et >10" 
label values	groupe_diff_p2	l_groupe_diff_p2

save "$ecrprov\comparaison_fin1.dta", replace

/*****************/
/* B - 2020      */
/*****************/
* 1 - recomposition du total_after_tax par MENAGE/annee_SRCV : somme par ident_men_ue/annee_SRCV
clear 
use "$ecrfin\ind_men_2008_2020_agregats.dta", clear
keep if annee_SRCV == 2020
sort ident_men_ue annee_SRCV ind
order ident_men_ue annee_SRCV ind
collapse (sum) total_after_tax_p1=total_after_tax total_after_tax_p2=total_after_tax_var, by(ident_men_ue annee_SRCV)
save "$ecrprov\total_after_tax_famille2.dta", replace

* 2 - récupération nb_rb030, HY020 et HY100N par ident_men_ue annee_SRCV
clear 
use "$ecrfin\ind_men_2008_2020_agregats.dta", clear
sort men annee_SRCV ind
order men annee_SRCV ind 
keep ident_men_ue annee_SRCV nb_rb030 HY020 HY100N
duplicates drop ident_men_ue annee_SRCV, force
save "$ecrprov\nb_rb030.dta", replace

* 3 - appariement table ci-dessus avec nb_rb030
clear			
use "$ecrprov\total_after_tax_famille2.dta", clear
duplicates drop ident_men_ue annee_SRCV, force
clear
use "$ecrprov\nb_rb030.dta", clear
duplicates drop ident_men_ue annee_SRCV, force
clear			
use "$ecrprov\total_after_tax_famille2.dta", clear
merge 1:1 ident_men_ue annee_SRCV using "$ecrprov\nb_rb030.dta"
drop if _merge == 2
drop _merge
save "$ecrprov\comparaison2.dta", replace

* 4 - récupération des revenus des individus avec adultvrairep == 0
* remplacement des points par zéro
clear
use "$ecrfin\adultvrairep_a_zero.dta", clear
keep if annee_SRCV == 2020
foreach var of varlist PY100N PY110N PY010N PY050N PY090N PY120N PY130N PY140N PY021G PY080N PY080G {
replace `var'= 0 if `var' == .
}
save "$ecrprov\adultvrairep_a_zero.dta", replace 

* somme par ident_men_ue/anne de tous les revenus non pris en compte dans total_after_tax
clear
use "$ecrprov\adultvrairep_a_zero.dta", clear
gen revenus_indi_supp = PY100N+PY110N+PY010N+PY050N+PY090N+PY120N+PY130N+PY140N+PY021G+PY080G 
save "$ecrprov\adultvrairep_a_zero.dta", replace 
clear
use "$ecrprov\adultvrairep_a_zero.dta", clear
count if ident_men_ue == .
collapse (sum) revenus_indi_supp_famille=revenus_indi_supp, by(ident_men_ue annee_SRCV)
save "$ecrprov\adultvrairep_a_zero_fin.dta", replace

* appariement table ci-dessus avec comparaison1.dta
clear			
use "$ecrprov\adultvrairep_a_zero_fin.dta", clear
duplicates drop ident_men_ue annee_SRCV, force
clear
use "$ecrprov\comparaison2.dta", clear
duplicates drop ident_men_ue annee_SRCV, force
clear			
use "$ecrprov\comparaison2.dta", clear
merge m:m ident_men_ue annee_SRCV using "$ecrprov\adultvrairep_a_zero_fin.dta"
drop _merge
replace revenus_indi_supp_famille = 0 if revenus_indi_supp_famille == .
save "$ecrprov\comparaison_fin2.dta", replace

* 5 - comparaison série recalculée (total_after_tax_famille+revenus_indi_supp_famille) et (HY020-HY100N)
* création de diff 
clear			
use "$ecrprov\comparaison_fin2.dta", clear
* création de diff_int 
gen diff_p1 = (HY020-HY100N) - (total_after_tax_p1+revenus_indi_supp_famille)
gen diff_p2 = (HY020-HY100N) - (total_after_tax_p2+revenus_indi_supp_famille)
gen diff_p1r=round(diff_p1)
gen diff_p2r=round(diff_p2)

gen groupe_diff_p1 = 0
replace groupe_diff_p1 = 1 if diff_p1r >= -10 & diff_p1r <= 10 /* écarts faibles */  
replace groupe_diff_p1 = 2 if diff_p1r <  -10 | diff_p1r > 10  /* écarts plus élevés */  
replace groupe_diff_p1 = 0 if diff_p1r == 0 
label variable groupe_diff_p1 "Ecarts = (HY020-HY100N) - (total_after_tax_p1+revenus_indi_supp_famille)"
label define	l_groupe_diff_p1	0 "Ecarts à zéro" 1 "Ecarts très faibles >=-10 et <=10" 2 "Ecarts plus élevés <-10 et >10" 
label values	groupe_diff_p1	l_groupe_diff_p1

gen groupe_diff_p2 = 0
replace groupe_diff_p2 = 1 if diff_p2r >= -10 & diff_p2r <= 10 /* écarts faibles */  
replace groupe_diff_p2 = 2 if diff_p2r <  -10 | diff_p2r > 10  /* écarts plus élevés */  
replace groupe_diff_p2 = 0 if diff_p2r == 0 
label variable groupe_diff_p2 "Ecarts = (HY020-HY100N) - (total_after_tax_p2+revenus_indi_supp_famille)"
label define	l_groupe_diff_p2	0 "Ecarts à zéro" 1 "Ecarts très faibles >=-10 et <=10" 2 "Ecarts plus élevés <-10 et >10" 
label values	groupe_diff_p2	l_groupe_diff_p2

save "$ecrprov\comparaison_fin2.dta", replace


/******************************************************************************************/
/* VI - mise en forme finale de la table                                                  */
/******************************************************************************************/
* création table avec adultvrairep == 1
clear 
use "$ecrfin\ind_men_2008_2020_agregats.dta", clear
sort men ind annee_SRCV
save "$ecrfin\ind_men_2008_2020_agregats.dta", replace


/******************************************************************************************/
/* VII - extraction table 2020 pour coller aux tables 2004-2008 et 2008-2019              */
/******************************************************************************************/
* création table avec adultvrairep == 1
clear 
use "$ecrfin\ind_men_2008_2020_agregats.dta", clear
keep if annee_SRCV == 2020
sort men ind annee_SRCV
save "$ecrfin\ind_men_2020_agregats.dta", replace
